11444:DRM_DDC_GetDeviceCertificate returns the devcert if it is present
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, TRUE)
Test_API_GetDeviceCertificate(10240, 0, NORMAL, 0 DataBuffer)
Test_CompareDataBuffer(0 DataBuffer, Devcert)

Test_API_GetDeviceCertificate(10240, 1, NORMAL, 1 DataBuffer)
Test_CompareDataBuffer(1 DataBuffer, Devcert)
Test_CompareDataBuffer(0 DataBuffer, 1 DataBuffer)

11445:DRM_DDC_GetDeviceCertificate creates a valid devcert if it does not exist
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer)
Test_CompareDataBuffer(0 DataBuffer, Devcert)
Test_VerifyDevcert(0 DataBuffer)

-------------------BVT ends here--------------------------

11446:DRM_DDC_GetDeviceCertificate creates different (random) device keys
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer)
Test_RemoveDeviceData
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(10240, 1, NORMAL, 1 DataBuffer)
Test_CompareDataBuffer(0 DataBuffer, 1 DataBuffer)=1 (S_FALSE)

11448:DRM_DDC_GetDeviceCertificate should fail if devcert template is larger than the size limit.
Test_SetDeviceEnv(dt_oversize.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer)= -2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

11449:DRM_DDC_GetDeviceCertificate should fail if the group cert security level is higher than the one in DAC
Test_SetDeviceEnv(dt_badsec.dat, priv.dat, FALSE)

'Optimization: no longer check template validity on device
'Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer)=!S_OK
Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer)

11450:DRM_DDC_GetDeviceCertificate should fail if devcert template signature is broken
Test_SetDeviceEnv(dt_badsign.dat, priv.dat, FALSE)
'Optimization: no longer check template validity on device
'Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer) = -2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
Test_API_GetDeviceCertificate(10240, 1, NORMAL, 0 DataBuffer)

11452:DRM_DDC_GetDeviceCertificate should fail if input parameters are null
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(NULL, 1, NORMAL, 0 DataBuffer)=-2147024809(0X80070057, DRM_E_INVALIDARG)
Test_API_GetDeviceCertificate(10240, 1, NULL, 0 DataBuffer)=-2147024809(0X80070057, DRM_E_INVALIDARG)
Test_API_GetDeviceCertificate(EMPTY, 1, NORMAL, 0 DataBuffer)=-2147024809(0X80070057, DRM_E_INVALIDARG)

11453:DRM_DDC_GetDeviceCertificate should fail if output buffer is not large enough to hold the devcert
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(2, 1, NORMAL, 0 DataBuffer)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, TRUE)
Test_API_GetDeviceCertificate(2, 0, NORMAL, 0 DataBuffer)=-2147172283(0X8004C045, DRM_E_DEVCERTREADERROR)

11454:DRM_DDC_GetDeviceCertificate should fail if devcert does not exist and dwFlag is 0
Test_SetDeviceEnv(devcerttemplate.dat, priv.dat, FALSE)
Test_API_GetDeviceCertificate(10240, 0, NORMAL, 0 DataBuffer)=-2147172283(0X8004C045, DRM_E_DEVCERTREADERROR)

 
